Resumo de Comandos - Criar APK sem Android Studio e sem variáveis de ambiente configuradas

1. Instalar o Android SDK e Command Line Tools

1.1. Baixe o Android SDK e as ferramentas de linha de comando no site oficial do Google:

https://developer.android.com/studio#command-tools

1.2. Extraia os arquivos para um local acessível:

mkdir D:\Users\f198341\android-sdk

2. Configurar o JDK temporariamente

set JAVA_HOME=D:\Users\f198341\java-jdk\jdk-21
set PATH=%JAVA_HOME%\bin;%PATH%

3. Instalar os pacotes necessários

"D:\Users\f198341\android-sdk\cmdline-tools\latest\bin\sdkmanager.bat" --sdk_root=D:\Users\f198341\android-sdk "platform-tools" "platforms;android-33" "build-tools;33.0.1"

4. Criar Estrutura do Projeto

mkdir D:\Users\f198341\AppAndroid\src\com\exemplo\meuapp
mkdir D:\Users\f198341\AppAndroid\bin
mkdir D:\Users\f198341\AppAndroid\res

5. Criar AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.exemplo.meuapp"
    android:versionCode="1"
    android:versionName="1.0">
    
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />

    <application android:label="MeuApp">
        <activity android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

6. Criar MainActivity.java

package com.exemplo.meuapp;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView textView = new TextView(this);
        textView.setText("Olá, Mundo!");
        setContentView(textView);
    }
}

7. Compilar Código Java

"D:\Users\f198341\java-jdk\jdk-21\bin\javac.exe" -source 21 -target 21 -d D:\Users\f198341\AppAndroid\bin -classpath "D:\Users\f198341\android-sdk\platforms\android-33\android.jar" D:\Users\f198341\AppAndroid\src\com\exemplo\meuapp\MainActivity.java

8. Converter para DEX

"D:\Users\f198341\java-jdk\jdk-21\bin\java.exe" -cp "D:\Users\f198341\android-sdk\build-tools\33.0.1\lib\d8.jar" com.android.tools.r8.D8 --output D:\Users\f198341\AppAndroid\bin --lib "D:\Users\f198341\android-sdk\platforms\android-33\android.jar" D:\Users\f198341\AppAndroid\bin\com\exemplo\meuapp\MainActivity.class

9. Criar APK

"D:\Users\f198341\android-sdk\build-tools\33.0.1\aapt.exe" package -f -M D:\Users\f198341\AppAndroid\AndroidManifest.xml -I "D:\Users\f198341\android-sdk\platforms\android-33\android.jar" -F D:\Users\f198341\AppAndroid\bin\MeuApp.apk D:\Users\f198341\AppAndroid\res

10. Assinar APK

"D:\Users\f198341\android-sdk\build-tools\33.0.1\apksigner.bat" sign --ks D:\Users\f198341\AppAndroid\meuapp.keystore --ks-key-alias meuapp --out D:\Users\f198341\AppAndroid\bin\MeuApp-assinado.apk D:\Users\f198341\AppAndroid\bin\MeuApp.apk

11. Criar Keystore (se necessário)

"D:\Users\f198341\java-jdk\jdk-21\bin\keytool.exe" -genkey -v -keystore D:\Users\f198341\AppAndroid\meuapp.keystore -alias meuapp -keyalg RSA -keysize 2048 -validity 10000

12. Instalar APK no Celular

"D:\Users\f198341\android-sdk\platform-tools\adb.exe" install D:\Users\f198341\AppAndroid\bin\MeuApp-assinado.apk